In data processing installations, host processors generally have a relatively large plurality of peripheral data storage devices for storing data to be used in connection with hostprocessor operations. Each host processor generally executes programs that allocate portions of the data storage space of the respective peripheral data storage devices to various computer processes within the host processor. Each computer process is often referred to as a "user" of the peripheral data storage device. Such allocation programs also provide for deallocations and reallocations of the data storage space and often defragments the data stored in the storage spaces by sequences of allocations and deallocations. Storage space fragmentation occurs when data is stored in a manner to leave a number of unused storage spaces--many of which are relatively small. As a result, the host processor has a reduced ability to assign real storage locations for data storage because the available spaces are too small to store the data. Therefore, fragmentation decreases the efficiency of the peripheral data storage space by reducing usable space and increases access time to the stored data. Generally, once the data storage space is allocated for a user or a set of users, so-called access methods, such as VSAM (virtual storage access method), select the allocated areas for storing or retrieving data.
When the data processing environment grows to have an extremely large number of addressable data storage volumes which are mountable on a data storage unit, such as a magnetic tape recorder or disk recorder, the utilization of such data storage space and the accessing of such data storage space become extremely complicated. As a result, various programs have been devised for enhancing utilization of peripheral data storage space and for providing automatic management of such peripheral data storage space. Included in such programming is a goal of balancing the data storage and retrieval operations among a large plurality of such data storage devices. Such balancing enables the access methods to operate more efficiently, thereby providing a higher-performance data processing environment.
For balancing peripheral device activity while still affording a high degree of data-storage-space utilization in the various devices, the Auxiliary Storage Manager program, supplied by International Business Machines Corporation, keeps a history of the time it takes to service one page unit of data being transferred in a paging and swapping environment. Such history is kept for each page of data storage space in main memory of a host processor. Time of day is saved immediately prior to calling an input/output supervisory program and again on the entry of the data into the main memory. The two time values are subtracted and then divided by the number of page-request (data is handled in "pages") services to obtain the time to service one page request for a plurality of such page requests. This calculated time-delay value is factored into a previously calculated average time for the page being handled. The algorithm for calculating service time is one-half of the old service time plus one-fourth of the newly calculated service time plus one-fourth of expected service time. In this manner, the calculated service time reflects the historical service rate for a one-page request over several time periods, as well as the expected service rate for an upcoming time period. Using these calculations, if a peripheral data storage device is slow or very busy, fewer data storage requests are initiated to that device; in contradistinction, a fast-responding device will have more page requests initiated to it for achieving a load balancing based upon page access delays.
Typically, in a paging-and-swapping environment, there are a relatively small number of peripheral data storage devices; accordingly, the techniques of the Auxiliary Storage Manager provide adequate management of the access times and data storage requests. However, when a larger number of peripheral data storage devices are servicing a larger number of host processors, such an approach to load balancing and management of access time may not provide optimum or desired results. Accordingly, different types of management techniques may have to be employed in a large peripheral data storage environment which includes paging and swapping as well as other data storage operations.
A swap storage management is described in the IBM Technical Disclosure Bulletin Volume 20, No. 9, February 1978, pages 3651 through 3657. This technique controls the flow of tasks between peripheral disk data storage and main data storage of a host processor. The described data storage management does not accommodate a large variety of data storage devices, as commonly found in many data processing environments; therefore, the storage management techniques of this article are not generally applicable to managing all of the data storage devices in a complex data processing environment.
Other techniques include allocating data storage space based upon the total free space available in the various peripheral data storage devices. While such a technique provides for efficient allocation control, such technique does not address the problems of data promotion (recall), defragmentation, and the like. Accordingly, it is desired that some form of data storage management be provided, not only for handling data demotions (migrations), etc., but also for handling data promotion (recall) and defragmentation suitable for a plurality of host processors having a larger plurality of diverse peripheral data storage devices. The term "migration" means a data transfer from a rapid-access peripheral data storage device to a slower-access peripheral data storage device, while a "recall" is a data transfer in the opposite direction.
Some progress has been made in the handling of multihost-managed peripheral data storage devices for migration, recall, backup, and recovery. International Business Machines Corporation of Armonk, New York, has provided a program product called "Hierarchical Storage Manager", Program No. 5740-XRB, as described in the Documents Incorporated by Reference. This program product can operate in one or simultaneously in a plurality of host processors for providing so-called "global" management of a large plurality of peripheral data storage devices of diverse types. For example, the Hierarchical Storage Manager (HSM), supplied by International Business Machines Corporation, manages data storage spaces in a variety of direct-access storage devices, a mass storage system identified as the IBM 3850 Mass Storage System, and magnetic-tape data recorders. This program product provides space management, backup, and recovery functions for managing data sets in a logical hierarchy of the above-mentioned data storage devices. The program is a continuously running task on all of the host processors.
Under HSM, various logical levels of peripheral data storage space are provided. A set of data storage devices called primary storage space is that data storage space where the various application programs executing in host processors access the needed data. The HSM program optimizes the use of the primary data storage space by automatic migrations of data to lower cost data storage devices (data demotion or migration), and automatically moves data needed by the host processors from the migration data storage space back to the primary data storage space. Also, aged data sets can be deleted and retired. Various attributes and parameters determine how HSM provides migration, recall, backup, recovery, and deletion of data sets with respect to the diversity of data storage devices.
In HSM, several central data sets are employed by the various host processors for serializing management of the various peripheral data storage devices and for coordinating operations of the host processors with respect to the various peripheral data storage devices. A plurality of so-called user exits in the HSM program facilitate operator parameter input to the program for more efficiently managing its functions.
HSM also receives commands from an operator's console which are interpreted by HSM to perform explicitly requested functions. HSM generally operates independently of operator intervention in that most functions are implicitly performed, including migration and recall--that is, on a recall, if an application program requests a data set from a primary volume and it was migrated by HSM to another data storage device, HSM intercepts the request for a migrated data set and promotes, or recalls, such requested data set from the migration volume storing the data set to a primary volume. The the application program can continue to run even though there is a delay caused by the recall function.
One of the operator commands is ADDVOL which enables the operator to add volume of data to be managed by HSM, change the attributes of managed volumes and the like. The documents incorporated by reference describe ADDVOL including the assignment of data storage volumes as primary data storage, migration data storage and the like. HSM enables the HSM-executing host processor to maintain lists of data storage volumes for establishing a logical data storage hierarchy wherein the primary data storage volumes are the upper, or data-accessing, level of the hierarchy, while the migration volumes constitute the various lower, or internal, levels of the logically established data storage hierarchy.
Even with all of the interactive and automatic functions provided by HSM, a more-complete management of peripheral data storage space with more-efficient space utilization and reduced access time is still desired.
Historically tape data storage volumes (reels of tape) were limited to a single user, i.e., effectively a single set of data sets. It is desired that such tape data storage volumes be more efficiently utilized by permitting sharing of such data storage volumes among several host processor processes. Accordingly, it is desired to provide automatic means for facilitating sharing of various data storage volumes within a data processing environment.
The term "data storage volume" is intended to mean an addressable unit of storage which is often physically characterized by a single reel of tape, a single diskette or removable set of data storage disks, a single spindle of disks, or merely a logically-defined data storage space which may be more or less than the data storage capacity of any physical data storage unit associated with the logically-defined data storage space. For example, a logical data storage volume can represent a data storage capacity of 100 megabytes, one million megabytes, etc.
Managing a large diversity of peripheral data storage devices on a shared-volume basis results, as indicated by the theory of probability, in a relatively large number of access contentions by the various host-processor processes and tasks being performed. Accordingly, it is desired to have a facile contention-resolution mechanism which enables good utilization of data storage space, good management of access requests, and a relatively simple mechanism for coordinating the contention resolutions of the various peripheral data storage volumes by one or more independently-operating host processors.